\documentclass{beamer}
\usepackage{multirow}
\usepackage{ctex}
\usepackage{graphicx}
\usepackage{xcolor}
\usetheme{Madrid}

\mode<presentation>

\author{uncle-lu}
\title{生命不息,搞事不止}
\institute{乌鲁木齐市第一中学}
\date{\today}

\begin{document}

	\frame{\titlepage}

	\section{介绍}

	\begin{frame}\frametitle{讲在前面的话}
		\begin{itemize}
				\pause
			\item 在机房不允许玩游戏.
				\pause
			\item 上课允许吃东西,但是要分享
				\pause
			\item 上课不准说一句话.上课只有提问者和解答者能说话.
				\pause
			\item 不需要做笔记.PPT讲完会发下去.但是有任何没听懂的地方应该\textbf{立马提出来}.打断上课也没有关系.
				\pause
			\item 上课随时会随机抽人提问.回答错会有相应的惩罚.
		\end{itemize}
	\end{frame}

	\begin{frame}\frametitle{个人介绍}

		我是uncle-lu , 高二九班 卢翼 , 性别:未知;

		OI荣获:
		\begin{itemize}
			\item NOIP 201x 普及组一等奖.
			\item NOIP 2016 提高组二等奖.
			\item CCF WC2017 胸牌 22分.
		\end{itemize}

		现役选手.

		\begin{itemize}
			\item 博客:uncle-lu.org
			\item QQ:593497615 刺猬的玻璃心碎了.
			\item 代码库:https://gitee.com/uncle-lu/
			\item 知乎: 刺猬的玻璃心碎了
		\end{itemize}

	\end{frame}

	\begin{frame}\frametitle{少废话,先看东西.}

        \begin{figure}[htbp]
            \centering
            \includegraphics[width=1\textwidth]{a.png}
        \end{figure}

		\pause
		今天的主要任务:
		
		搞懂我们从今往后在学什么.

	\end{frame} 

	\begin{frame}\frametitle{OI}
		信息学竞赛.

		\pause

		计算机编程与算法


		通过编写程序实现算法.完成题目中要求.(维护/计算数据)

	\end{frame}
	
	\section{C++}

	\begin{frame}\frametitle{C++ ?}

		我们刚讲了需要用到计算机编程.

		我们来介绍一下我们需要用到的语言.
		\begin{center}
			\Huge{\textbf{C++}}
		\end{center}
	\end{frame}

	\begin{frame}\frametitle{C++ !}
		\begin{block}{C++}
			C++是一种广泛使用的计算机程序设计语言。它是一种通用程序设计语言，静态数据类型检查，支持多重编程范式，例如过程化程序设计、数据抽象化、面向对象程序设计、泛型程序设计、基于原则设计等。

			比雅尼·斯特劳斯特鲁普博士在贝尔实验室工作期间在20世纪80年代发明并实现了C++。起初，这种语言被称作“C with Classes”（“包含类别的C语言”），作为C语言的增强版出现。随后，C++不断增加新特性。虚函数（virtual function）、操作符重载（operator overloading）、多重继承（multiple inheritance）、模板（template）、异常处理（exception）、RTTI（Runtime type information）、名字空间（namespace）逐渐纳入标准。1998年，国际标准组织（ISO）颁布了C++程序设计语言的第一个国际标准ISO/IEC 14882:1998，目前最新标准为ISO/IEC 14882:2014。
		\end{block}
		此内容摘自:维基百科.
	\end{frame}

	\begin{frame}\frametitle{Compilers ?}

		\begin{block}{What is a compiler?}
			Computers understand only one language and that language consists of sets of instructions made of ones and zeros. This computer language is appropriately called machine language.

			Because a computer can only understand machine language and humans wish to write in high level languages high level languages have to be re-written (translated) into machine language at some point. This is done by special programs called compilers, interpreters, or assemblers that are built into the various programming applications.

		\end{block}

		此内容摘自:www.cplusplus.com
	\end{frame}

	\begin{frame}\frametitle{Compiler}
		Source Code->Preprocessor->Compilers->ASSembler->Objectcode->Linker->Executables
	\end{frame}

\begin{frame}\frametitle{IDE}

		这些编译过程太复杂了 >\_< !!!

		所以我们用一个集成环境来解决这个问题.

		IDE(Integrated Development Environment)

		\pause

		待会发下去的Dev-c++就是IDE

\end{frame}

\begin{frame}\frametitle{你应该知道}
	\begin{figure}[htbp]
		\centering
		\includegraphics[width=1\textwidth]{a.png}
	\end{figure}
	\begin{itemize}
		\item 顺序结构/程序结构
		\item 数据类型
		\item 输入输出语句.
	\end{itemize}
\end{frame}


\begin{frame}[fragile]
	\frametitle{头文件}

	\#include<cstdio>

	\begin{block}{include ?}
		\#include 设施是C++预处理器的一部分.

		声明在这个地方插入别的文件中的代码
	\end{block}

	\pause

	\begin{block}{cstdio}
		c++ \quad Standard \quad input \quad output
		\newline
		标准输入输出库.(C++标准自带的文件)
	\end{block}

\end{frame}

\begin{frame}\frametitle{main}
	main:主要的.

	C++中又名 主函数. 通俗的讲就是(主程序)

	\pause

	\begin{block}{顺序}

		C++语言程序首先会运行main内的语句.

		从上往下.

		由于在最后编译的.文件内容会强制性压在一起.需要用分号将每个语句隔开.
		
	\end{block}

\end{frame}

\begin{frame}
	\frametitle{Int}

	数据类型.
	\pause

	int全称Integer.整数.

	\pause

	待会讲

\end{frame}

\begin{frame}
	\frametitle{Return 0}

	return :返回

	\pause

	每一段函数必须有一段返回值.
	
	return 代表着一段函数的结束.

	\pause

	因为我们声明main函数为int类型.

	所以返回值必须为整数类型.

	\pause

	为什么要求main函数返回值必须为整型.也必须为0?

	\pause

	\begin{block}{非官方解释:}
		其实用0表示“成功”是UNIX哲学 ------ 没有消息就是好消息：0，表示“没有”，即“没有任何问题”。

		系统问程序：你运行是否有任何问题？

		程序回复：没有任何问题 ----- 即0，表示运行一切顺利。
	\end{block}

\end{frame}

\begin{frame}
	\frametitle{return 0}

	\begin{block}{Exit(0) 官方解释:}
		Finally, control is returned to the host environment. If the value of status is zero or
		EXIT\_SUCCESS, an implementation-defined form of the status successful termination is
		returned. If the value of status is EXIT\_FAILURE, an implementation-defined form
		of the status unsuccessful termination is returned. Otherwise the status returned is
		implementation-defined.
	\end{block}

\end{frame}

\begin{frame}{总结与回顾}
	\begin{figure}[htbp]
		\centering
		\includegraphics[width=1\textwidth]{a.png}
	\end{figure}
\end{frame}

\begin{frame}{补坑}

	休息3分钟.

	\pause

	接下来我们会讲.

	\begin{itemize}
		\item 数据类型.
		\item 变量与常量.
		\item 赋值表达式.
		\item 运算符.
		\item 表达式.
	\end{itemize}

\end{frame}

\begin{frame}
	\frametitle{数据类型}

	数据类型初学者只需要知道4种

	\pause

	\begin{table}
		\begin{tabular}{|c|c|c|}
			\hline
			表示 & 名称 & 范围 \\
			\hline
			int & 整型 & \([-2147483648,2147483647]\)\\
			\hline
			long long int &长整型& \([-2^{63},2^{63}-1]\)\\
			\hline
			double & 双精度 & \([-1.7E308,1.7E+308]\)\\
			\hline
			char & 字符型 & 所有字符\\
			\hline 
			bool & 布尔类型 & True or False\\
			\hline
		\end{tabular}
		\caption{数据类型总结}
	\end{table} 
	
\end{frame}

\begin{frame}
	\centering
	\Huge{我们有了这些数据类型怎么来表示它们呢?}
\end{frame}

\begin{frame}

	\frametitle{变量与常量}

	\begin{itemize}
		\item 常量 : 值,固定值.
		\item 变量 : 不固定值,存储单元.
	\end{itemize}
	\pause

	变量包括:
	\begin{itemize}
		\item 变量名.
		\item 变量类型.
		\item 值.
	\end{itemize}
	\pause

	变量名:
	\begin{itemize}
		\item 只能下划线或者字母开头.
		\item 可以由数字和字母组成.
	\end{itemize}

\end{frame}

\begin{frame}
	\centering
	\Huge{一个计算机内存4G.它怎么知道你用了那一块存储单元?}

\end{frame}

\begin{frame}
	\frametitle{先声明后使用}

	我们需要告诉计算机我们需要什么类型的叫什么名字的变量.

	这个过程叫做\textbf{定义}

	所以我们需要遵循一个先定义后使用的原则.

	\pause

	\begin{block}{定义}
		int a;

		变量类型 变量名;
	\end{block}

\end{frame}

\begin{frame}
	\centering
	\Huge{那我们定义的变量的值是怎么来的?}

\end{frame}

\begin{frame}{赋值语句}

	$=$在C++中为赋值运算符.

	不表示\textbf{等于}的判断.

	\begin{block}{赋值操作}

		\centering

		变量=变量

		变量=值

		变量=表达式

	\end{block}

\end{frame}

\begin{frame}{表达式与运算符}

	算术运算符.

	$$ + \quad - \quad * \quad / \quad \% $$

	赋值运算符.

	$$=$$

\end{frame}

\begin{frame}
	\frametitle{数据的输入与输出}

	C++中没有专门的输入输出语句.

	我们使用的语句.均是C++标准库中<cstdio>文件的子函数.

	接下来的内容均摘自:www.cplusplus.com

\end{frame}

\begin{frame}
	\frametitle{输入}

	标准格式输入函数.

	\pause

	\begin{block}{format}
		int scanf ( const char * format, ... );
	\end{block}

	\begin{block}{Read formatted data from \textbf{stdin}}

		Reads data from \textbf{stdin} and stores them according to the parameter format into the locations pointed by the additional arguments.

		The additional arguments should point to already allocated objects of the type specified by their corresponding format specifier within the format string.

	\end{block}

\end{frame}

\begin{frame}
	\frametitle{输入}

	标准格式输入函数.

	\pause

	\begin{block}{格式}
		int scanf ( const char * format, ... );
	\end{block}

	\begin{block}{Read formatted data from stdin}
		从stdin读取格式化的数据

		读取的数据stdin根据参数格式并将它们存储到位置指出附加参数。

		附加参数应该指向已经分配的对象类型由相应的指定格式字符串中的格式说明符。
	\end{block}

\end{frame}

\begin{frame}

	\frametitle{输入格式}
	内容摘自:http://www.cplusplus.com/reference/cstdio/scanf/
	\pause
	\begin{center}
		scanf ("\%d",\&i);
	\end{center}
	\pause
	\begin{table}
		\begin{tabular}{|c|c|c|c|}
			\hline
			表示 & 名称 & 范围 & 格式符\\
			\hline
			int & 整型 & \([-2147483648,2147483647]\) & \%d\\
			\hline
			long long int &长整型& \([-2^{63},2^{63}-1]\) & \%lld\\
			\hline
			double & 双精度 & \([-1.7E308,1.7E+308]\) & \%lf\\
			\hline
			char & 字符型 & 所有字符 & \%c\\
			\hline 
			bool & 布尔类型 & True or False & 无\\
			\hline
		\end{tabular}
		\caption{数据类型}
	\end{table} 
	
\end{frame}

\begin{frame}
	\frametitle{输出}

	标准格式输出函数.
	\pause
	\begin{block}{format}
		int printf ( const char * format, ... );
	\end{block}
	\pause
	\begin{block}{Print formatted data to \textbf{stdout}}
		Writes the C string pointed by format to the standard output (stdout). If format includes format specifiers (subsequences beginning with \%), the additional arguments following format are formatted and inserted in the resulting string replacing their respective specifiers.
	\end{block}

\end{frame}

\begin{frame}
	\frametitle{输出}

	标准格式输出函数.
	\pause
	\begin{block}{format}
		int printf ( const char * format, ... );
	\end{block}
	\pause
	\begin{block}{Print formatted data to \textbf{stdout}}
		打印格式的数据发送到\textbf{stdout}
		写的C字符串指出格式到标准输出(stdout)。如果格式包括格式说明符(子序列从\%),格式格式化后的附加参数和插入在生成的字符串替换各自说明符。
	\end{block}

\end{frame}

\begin{frame}

	\frametitle{输出格式}

	\begin{center}
		printf ("\%d",i);
	\end{center}

	\pause

	\begin{table}
		\begin{tabular}{|c|c|c|c|}
			\hline
			表示 & 名称 & 范围 & 格式符\\
			\hline
			int & 整型 & \([-2147483648,2147483647]\) & \%d\\
			\hline
			long long int &长整型& \([-2^{63},2^{63}-1]\) & \%lld\\
			\hline
			double & 双精度 & \([-1.7E308,1.7E+308]\) & \%lf\\
			\hline
			char & 字符型 & 所有字符 & \%c\\
			\hline 
			bool & 布尔类型 & True or False & 无\\
			\hline
		\end{tabular}
		\caption{数据类型}
	\end{table} 

\end{frame}

\begin{frame}
	\frametitle{回顾}

	\begin{figure}[htbp]
		\centering
		\includegraphics[width=1\textwidth]{b.png}
	\end{figure}

\end{frame}

\begin{frame}
	\centering
	\Huge{实践是检验真理的唯一标准}
\end{frame}

\begin{frame}
	\centering
	\Huge{Thanks!}

	本班班裙:563031213

	总群:679890733

\end{frame}

\end{document}
